ποΈGitΠ―ΡΠ°ποΈ
Node / meshtastic / Meshtastic-Android / files / specs / 20260520-153449-node-list-context-menu / quickstart.md
specs/20260520-153449-node-list-context-menu/quickstart.md fix/qr-error-correction (7b45f84f) Text, 2.51 KB
Quickstart: Node List Context Menu Alignment
What This Feature Does
Aligns the node list long-press context menu to the canonical cross-platform order and adds two new quick-access actions (Message, Trace Route).
Key Files to Modify
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ
β File β Change β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββ€
β T383838feature/node/src/commonMain/.../component/NodeContextMenu.kt β Reorder items, add MessageMβ¦ β
β T383838feature/node/src/commonMain/.../list/NodeListScreen.kt β Wire T383838onMessage and T383838onTraceRβ¦ β
β T383838feature/node/src/commonMain/.../list/NodeListViewModel.kt β Add T383838traceRouteNode(node) anβ¦ β
β T383838core/resources/src/commonMain/composeResources/values/strings.xml β Add T383838trace_route string resoβ¦ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββ
Implementation Steps (High Level)
1. Add string resource: Add T383838<string name="trace_route">Trace Route</string> to T383838strings.xml
2. Run sort-strings: T383838python3 scripts/sort-strings.py
3. Add ViewModel methods: Inject T383838NodeRequestActions into T383838NodeListViewModel, add T383838traceRouteNode() and T383838getDirectMessageRoute() methods
4. Add new menu items: Create T383838MessageMenuItem and T383838TraceRouteMenuItem composables in T383838NodeContextMenu.kt
5. Reorder menu: Arrange items as Favorite β Mute β Message β TraceRoute | Ignore β Remove
6. Change mute label: Replace T383838Res.string.mute_always with T383838Res.string.mute_notifications
7. Update NodeContextMenu signature: Add T383838onMessage and T383838onTraceRoute parameters
8. Wire in NodeListScreen: Pass new callbacks from ViewModel to NodeContextMenu
9. Verify: Run T383838./gradlew spotlessApply spotlessCheck detekt :feature:node:allTests
Verification Commands
T282828
T8b949e# Full verification for touched modules
./gradlew spotlessApply spotlessCheck detekt :feature:node:allTests :core:resources:allTests
T8b949e# Build check (all platforms)
./gradlew assembleDebug kmpSmokeCompile
T8b949e# After push
gh pr checks <PR>
Important Notes
β’ The local node (self) context menu suppression is already implemented β no changes needed
β’ T383838Res.string.message ("Message") and T383838Res.string.mute_notifications ("Mute notifications") already exist
β’ T383838MeshtasticIcons.Message and T383838MeshtasticIcons.Route already exist
β’ T383838NodeMenuAction.DirectMessage and T383838NodeMenuAction.TraceRoute already exist in the sealed class
β’ T383838NodeRequestActions.requestTraceroute() already exists β just needs to be injected into T383838NodeListViewModel
Served by rngit 1.5.0 - Generated in 0.04s